package com.aruba.mapper;

import com.aruba.bean.Emp;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface EmpMapper {
    Emp findEmp(int empno);

    /**
     * 根据部门编号和薪资下限去查询员工信息
     */
    List<Emp> findEmpByDeptnoAndSal(@Param("deptno") int deptno, @Param("sal") double sal);

    /**
     * 根据部门编号和薪资下限去查询员工信息
     */
    List<Emp> findEmpByDeptnoAndSal(Map<String, Object> params);

    /**
     * 根据部门编号和薪资下限去查询员工信息
     */
    List<Emp> findEmpByDeptnoAndSal(Emp emp);

    /**
     * 根据一个员工的部门，和另一个员工的薪资查询员工集合
     */
    List<Emp> findEmpByEmp(Emp emp1, Emp emp2);

    /**
     * 根据部门编号和薪资下限去查询员工信息
     */
    @MapKey("empno")
    Map<Integer, Emp> findEmpMapByDeptnoAndSal(@Param("deptno") int deptno, @Param("sal") double sal);

    /**
     * 根据员工姓名模糊查询员工信息
     * @param ename
     * @return
     */
    List<Emp> findEmpLikeEname(String ename);

    /**
     * 新增一个员工
     * @param emp
     * @return
     */
    int addEmp(Emp emp);

    /**
     * 根据员工编号更新员工姓名
     * @param emp
     * @return
     */
    int updateEnameByEmpno(Emp emp);

    /**
     * 根据员工编号删除员工
     * @param empno
     * @return
     */
    int deleteEmpByEmpno(int empno);
}
